package com.zbxx.service;
/*
* 业务接口:站在"使用者的角度"设计接口
* 三个方面定义粒度,参数，返回类型(return类型/异常)
* */


import com.zbxx.domain.Seckill;
import com.zbxx.dto.Exposer;

import com.zbxx.dto.SeckillExecution;
import com.zbxx.exception.SeckillException;
import com.zbxx.exception.SeckillCloseException;
import com.zbxx.exception.RepeatKillException;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @Description:    java类作用描述
* @Author:         zt
* @CreateDate:     2018/11/3 0003 10:50
* @UpdateUser:     zt
* @UpdateDate:     2018/11/3 0003 10:50
* @UpdateRemark:   修改内容
* @Version:        1.0
*/

public interface SeckillService {

    //查询所有秒杀记录的接口
    List<Seckill> getSeckilllist();

    //查询单个秒杀记录
    Seckill getByid(long id);

    //秒杀开启时,输出秒杀接口的地址，否则输出系统时间和秒杀时间
    Exposer exportSeckillUrl(long id);//调用dto数据传输

    //执行秒杀操作
    SeckillExecution executeSeckill(@Param("id") long id, @Param("userPhone") long userPhone,@Param("md5") String md5)
            throws SeckillException,SeckillCloseException,RepeatKillException;//调用dto数据传输
}
